Docker Selenium(2) 更改容器變量

默認的Docker Selenium 只提供一個Browser Session可以用,每當有超過兩個Browser使用時,總是有一個在等待,這樣對於測試效率大大的降低,而建置時只要設好變量,就可以一次開10個…

加入變量

1
2
3
4
5
# Browser 最大到10個
NODE_MAX_SESSION: 10
NODE_MAX_INSTANCES: 10
# VNC 沒有密碼
VNC_NO_PASSWORD: 1

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# To execute this docker-compose yml file use docker-compose -f <file_name> up
# Add the "-d" flag at the end for deattached execution
version: '2'
services:
firefox:
image: selenium/node-firefox-debug:3.12.0-boron
volumes:
- /dev/shm:/dev/shm
depends_on:
- hub
environment:
HUB_HOST: hub
NODE_MAX_SESSION: 10
NODE_MAX_INSTANCES: 10
ports:
- "5900:5900"

chrome:
image: selenium/node-chrome-debug:3.12.0-boron
volumes:
- /dev/shm:/dev/shm
depends_on:
- hub
environment:
HUB_HOST: hub
NODE_MAX_SESSION: 10
NODE_MAX_INSTANCES: 10
ports:
- "5901:5900"
hub:
image: selenium/hub:3.12.0-boron
ports:
- "4454:4444"

執行結果

更多變量

透過docker inspect NAME|ID看容器變量。

Selenium hub 變量

selenium/hub:3.12.0-boron

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"DEBIAN_FRONTEND=noninteractive",
"DEBCONF_NONINTERACTIVE_SEEN=true",
"TZ=UTC",
"GRID_MAX_SESSION=5",
"GRID_NEW_SESSION_WAIT_TIMEOUT=-1",
"GRID_THROW_ON_CAPABILITY_NOT_PRESENT=true",
"GRID_JETTY_MAX_THREADS=-1",
"GRID_CLEAN_UP_CYCLE=5000",
"GRID_BROWSER_TIMEOUT=0",
"GRID_TIMEOUT=30",
"GRID_DEBUG=false",
"GRID_HUB_PORT=4444",
"GRID_HUB_HOST=0.0.0.0"
],

Node 變量

selenium/node-chrome-debug:3.12.0-boron

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"Env": [
"NODE_MAX_INSTANCES=10",
"NODE_MAX_SESSION=10",
"HUB_HOST=hub",
"VNC_NO_PASSWORD=1",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"DEBIAN_FRONTEND=noninteractive",
"DEBCONF_NONINTERACTIVE_SEEN=true",
"TZ=UTC",
"LANG_WHICH=en",
"LANG_WHERE=US",
"ENCODING=UTF-8",
"LANGUAGE=en_US.UTF-8",
"LANG=en_US.UTF-8",
"SCREEN_WIDTH=1360",
"SCREEN_HEIGHT=1020",
"SCREEN_DEPTH=24",
"DISPLAY=:99.0",
"NODE_HOST=0.0.0.0",
"NODE_PORT=5555",
"NODE_REGISTER_CYCLE=5000",
"NODE_POLLING=5000",
"NODE_UNREGISTER_IF_STILL_DOWN_AFTER=60000",
"NODE_DOWN_POLLING_LIMIT=2",
"NODE_APPLICATION_NAME=",
"DBUS_SESSION_BUS_ADDRESS=/dev/null"
],